ট্রানজাকশন কনফিগারেশন এবং ব্যবস্থাপনা

Database Tutorials - ডকুমেন্ট ডিবি (DocumentDB) Transactions এবং ACID Properties |
173
173

Amazon DocumentDB (MongoDB-সংক্রান্ত ডেটাবেস) MongoDB-তে বিদ্যমান ACID (Atomicity, Consistency, Isolation, Durability) ট্রানজাকশন সমর্থন করে না, তবে কিছু সীমিত Multi-Document Transaction সমর্থন করে যা MongoDB 4.0 থেকে শুরু হয়। MongoDB এবং DocumentDB-এর মধ্যে প্রধান পার্থক্য হল যে, MongoDB সম্পূর্ণ ACID ট্রানজাকশন সমর্থন করে, যেখানে DocumentDB multi-document transactions সমর্থন করে কিন্তু তা শুধুমাত্র নির্দিষ্ট সীমাবদ্ধতায় কাজ করে।

এখানে আমরা DocumentDB এর ট্রানজাকশন কনফিগারেশন এবং ব্যবস্থাপনা নিয়ে বিস্তারিত আলোচনা করব।


1. Multi-Document Transactions

DocumentDB Multi-Document Transactions সমর্থন করে যা একাধিক ডকুমেন্টকে একসাথে আপডেট বা পরিবর্তন করতে সক্ষম। তবে, এর সীমাবদ্ধতা রয়েছে, যেমন:

  • এটি শুধুমাত্র একটি ক্লাস্টারের মধ্যে কাজ করে, অর্থাৎ cross-cluster transactions সমর্থিত নয়।
  • ট্রানজাকশন শুধুমাত্র write operations (লিখন) সম্পাদন করতে ব্যবহৃত হয় এবং read operations সাপোর্ট করে না।

উদাহরণ:

একটি ট্রানজাকশন তৈরি করা:

const session = client.startSession();

session.startTransaction();

try {
  // একাধিক ডকুমেন্ট আপডেট করা
  const collection = db.collection('products');

  // পণ্যের মূল্য আপডেট করা
  await collection.updateOne(
    { product_id: "12345" },
    { $set: { price: 19.99 } },
    { session }
  );

  // স্টক আপডেট করা
  await collection.updateOne(
    { product_id: "12345" },
    { $set: { stock: 150 } },
    { session }
  );

  // ট্রানজাকশন কমিট করা
  await session.commitTransaction();
} catch (error) {
  // যদি কোনো ত্রুটি ঘটে, ট্রানজাকশন রোলব্যাক করা হবে
  await session.abortTransaction();
} finally {
  session.endSession();
}

এখানে startSession() একটি নতুন ট্রানজাকশন শুরু করবে এবং commitTransaction() এবং abortTransaction() ব্যবহার করে ট্রানজাকশন সফল বা ব্যর্থ হওয়ার পরে যথাযথভাবে তা সম্পন্ন বা রোলব্যাক করা হবে।


2. ট্রানজাকশন কনফিগারেশন

DocumentDB-তে ট্রানজাকশন ব্যবহারের জন্য কিছু নির্দিষ্ট কনফিগারেশন সেটআপের প্রয়োজন হয়:

  • Session Management: ট্রানজাকশন শুরু করার জন্য আপনাকে সেশন ম্যানেজ করতে হবে। প্রতিটি ট্রানজাকশন একটি সেশন প্রয়োজন এবং ট্রানজাকশন শেষ করার পর সেশনটি শেষ করা উচিত।
  • Write Concern: ট্রানজাকশনের write concern কনফিগার করা প্রয়োজন যাতে ডেটার সঠিক লেখন নিশ্চিত করা যায়। MongoDB এবং DocumentDB উভয়েই write concern সেট করা সম্ভব।
  • Isolation Level: DocumentDB-তে ট্রানজাকশনের isolation level নির্ধারণ করা যেতে পারে। এর মানে হল যে একাধিক ট্রানজাকশন একই ডেটা পরিবর্তন করতে চেষ্টা করলে তাদের পারস্পরিক প্রভাব নির্ধারণ করা হবে। যদিও DocumentDB এখনো সম্পূর্ণ Serializable Isolation সমর্থন করে না, তবে এটি Read Committed সাপোর্ট করে।

3. ট্রানজাকশন সমাপ্তি

ট্রানজাকশন সম্পন্ন করার জন্য দুটি প্রধান অপশন রয়েছে:

  • Commit: যদি ট্রানজাকশন সফলভাবে চলতে থাকে, তবে সমস্ত পরিবর্তন commit করা হয় এবং ডেটাবেসে স্থায়ী হয়।
  • Rollback: যদি ট্রানজাকশনের মধ্যে কোনো ত্রুটি ঘটে, তবে সমস্ত পরিবর্তন rollback করা হয় এবং ডেটাবেস পূর্বের অবস্থায় ফিরে আসে।

Commit Example:

await session.commitTransaction();

Rollback Example:

await session.abortTransaction();

4. ট্রানজাকশন স্ট্যাটাস মনিটরিং

DocumentDB এবং MongoDB উভয়েই ট্রানজাকশনের কার্যকারিতা মনিটর করতে operation logs বা transaction logs প্রদান করে। আপনি AWS CloudWatch এবং MongoDB Logs ব্যবহার করে ট্রানজাকশনের পারফরম্যান্স এবং সঠিকতা ট্র্যাক করতে পারেন।

5. ট্রানজাকশনের পারফরম্যান্স

DocumentDB-তে ট্রানজাকশন ব্যবহারের পারফরম্যান্সের উপর কিছু সীমাবদ্ধতা থাকতে পারে, কারণ এটি একটি distributed database। একাধিক ডকুমেন্ট আপডেট করার সময়, এটি কিছুটা latency বাড়াতে পারে। তাই এটি তখনই ব্যবহৃত উচিত যখন আপনি নিশ্চিত যে একাধিক ডকুমেন্টের উপর একই সময়ে আপডেট বা লেখন কার্যকরী হতে হবে।


6. সীমাবদ্ধতা

  • Transactions শুধুমাত্র একটি ক্লাস্টারের মধ্যে কাজ করে, তাই multi-cluster transactions সমর্থিত নয়।
  • DocumentDB সম্পূর্ণ ACID ট্রানজাকশন সমর্থন করে না, তবে eventual consistency প্রদান করে।
  • কিছু ট্রানজাকশন কার্যক্রম যেমন read operations ট্রানজাকশনের অংশ হিসাবে অন্তর্ভুক্ত করা হয় না।

সারাংশ

DocumentDB-তে Multi-Document Transactions ব্যবহৃত হয় এবং এটি MongoDB এর মতো কিছু সীমাবদ্ধতার সঙ্গে কাজ করে। যদিও এটি MongoDB-এর পুরো ACID ট্রানজাকশন সমর্থন করে না, তবে এটি সিম্পল ট্রানজাকশন সমর্থন করে, যা কিছু পরিস্থিতিতে কার্যকরী হতে পারে। DocumentDB-এর ট্রানজাকশন ব্যবস্থাপনা মূলত Atomicity এবং Consistency নিশ্চিত করতে ব্যবহৃত হয়, তবে উন্নত Isolation এবং Durability অপশনগুলি সীমিত।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion